import babelpolyfill from 'babel-polyfill'
import Vue from 'vue'
import App from './App'

import store from './vuex/store'    //vuex是vue的扩展包
import Vuex from 'vuex'
Vue.use(Vuex)

//import NProgress from 'nprogress'   //打开组件的时候可以在上面展示打开组件的进度条
//import 'nprogress/nprogress.css'
//NProgress.configure({ showSpinner: false });

/**
 * 全局导入路由以及路由配置（json数组）
 */
import VueRouter from 'vue-router'
import routes from './routes'
Vue.use(VueRouter)

/**
 * 导入MockJS，生成假数据
 * mockjs会自动拦截axios发出的所有ajax请求，导致请求出不去
 */
// import Mock from './mock'
// Mock.bootstrap();


/**
 * 全局导入elementui
 */
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-default/index.css'
//import './assets/theme/theme-green/index.css'
Vue.use(ElementUI)
//字体图标扩展库
import 'font-awesome/css/font-awesome.min.css'

import BMap from 'vue-baidu-map'    //导入百度Map
Vue.use(BMap, {
    // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
    ak: 'NousOtbmgDpBC4oCYZokv146cbPt6UgX'
})

/**
 * 全局导入axios
 */
import axios from 'axios'
axios.defaults.baseURL = 'http://localhost:8080'    //后端项目接口地址前缀
Vue.prototype.$http = axios
//使用axios请求拦截器，让所有的请求都携带userToken
axios.interceptors.request.use(config => {
    //携带userToken
    let userToken =  localStorage.getItem("userToken");
    if(userToken){
        //添加请求头
        config.headers['userToken'] = userToken;
    }
    return config;
},error => {
    Promise.reject(error);
})

//使用axios响应拦截器，处理未登录的请求
axios.interceptors.response.use(res => {
    console.log("jjjjjjj", res.data);
    let data = res.data;
    if(!data.success && data.msg==="noUser"){
        app.$router.push({path: '/login'})
        //location.href = 'http://localhost:8088/index.html/#/login'
    }
    return res;
},error => {
    Promise.reject(error);
})





//创建路由对象 内部使用了路由配置的那个json数组作为属性
const router = new VueRouter({
    routes
})

/**
 * 路由的请求拦截器：在路由每次跳转到某个组件之前执行
 */
// router.beforeEach((to, from, next) => {
//     //NProgress.start();
//     if (to.path == '/login') {
//         localStorage.removeItem('loginUser');
//     }
//     let user = JSON.parse(localStorage.getItem('loginUser'));
//     if (!user && to.path != '/login') {
//         next({path: '/login'})      //如果未登录就直接跳到登录页面
//     } else {
//         next()          //直接放行
//     }
// })

//router.afterEach(transition => {
//NProgress.done();
//});

var app = new Vue({
    //el: '#app',
    //template: '<App/>',
    router,
    store,
    //components: { App }
    render: h => h(App)
}).$mount('#app')

